// 社区服务中心首页逻辑
Page({
  /**
   * 页面的初始数据
   */
  data: {
    activities: [
      { 
        id: 1,
        title: '社区共读活动', 
        event_date: '2025-01-20',
        max_participants: 20
      },
      { 
        id: 2,
        title: '老年书法班开课', 
        event_date: '2025-01-22',
        max_participants: 15
      },
      { 
        id: 3,
        title: '健康讲座 - 冬季养生', 
        event_date: '2025-01-25',
        max_participants: 30
      }
    ],
    currentActivityIndex: 0,
    notices: [
      {
        title: '社区安全知识讲座将于本周末举行',
        date: '2023-11-15'
      },
      {
        title: '老年人体检预约开始，请符合条件的居民及时报名',
        date: '2023-11-10'
      },
      {
        title: '社区服务中心新增多项便民服务，请居民留意通知',
        date: '2023-11-05'
      }
    ]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 初始化轮播图索引
    this.setData({
      currentActivityIndex: 0
    });
    
    // 从服务器加载公告和活动数据
    this.loadNotices();
    this.loadActivities();
    
    // 确保轮播图能够启动（使用默认数据）
    this.startCarouselTimer();
  },

  /**
   * 跳转到一键报平安页面
   */
  navigateToCheckIn: function() {
    console.log('一键报平安按钮被点击');
    wx.navigateTo({
      url: '/pages/safety-care/safety-report/safety-report',
      success: function() {
        console.log('跳转到一键报平安页面成功');
      },
      fail: function(err) {
        console.error('跳转失败:', err);
        wx.showToast({
          title: '页面跳转失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 跳转到协议查询页面
   */
  navigateToAgreementQuery: function() {
    console.log('协议查询按钮被点击');
    wx.navigateTo({
      url: '/pages/agreement-query/index',
      success: function() {
        console.log('跳转到协议查询页面成功');
      },
      fail: function(err) {
        console.error('跳转失败:', err);
        wx.showToast({
          title: '页面跳转失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 跳转到物业报修页面
   */
  navigateToPropertyRepair: function() {
    console.log('物业报修按钮被点击');
    wx.navigateTo({
      url: '/pages/resource-navigation/property-repair/index',
      success: function() {
        console.log('跳转到物业报修页面成功');
      },
      fail: function(err) {
        console.error('跳转失败:', err);
        wx.showToast({
          title: '页面跳转失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 跳转到商家分类页面
   */
  navigateToCategory: function(e) {
    const category = e.currentTarget.dataset.category;
    console.log('商家分类按钮被点击:', category);
    wx.navigateTo({
      url: `/pages/resource-navigation/business-list/index?category=${encodeURIComponent(category)}`,
      success: function() {
        console.log('跳转到商家分类页面成功');
      },
      fail: function(err) {
        console.error('跳转失败:', err);
        wx.showToast({
          title: '页面跳转失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 查看全部商家
   */
  viewAllMerchants: function() {
    console.log('查看全部按钮被点击');
    wx.navigateTo({
      url: '/pages/resource-navigation/business-list/index',
      success: function() {
        console.log('跳转到商家列表页面成功');
      },
      fail: function(err) {
        console.error('跳转失败:', err);
        wx.showToast({
          title: '页面跳转失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 加载公告数据
   */
  loadNotices: function() {
    wx.showLoading({ title: '加载公告中...' });
    // 调用公告API接口
    wx.request({
      url: 'http://192.168.1.3:3002/api/notices',
      success: (res) => {
        if (res.data.success) {
          this.setData({
            notices: res.data.data
          });
        } else {
          wx.showToast({
            title: res.data.message || '公告加载失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('公告加载失败:', err);
        wx.showToast({
          title: '网络错误，无法加载公告',
          icon: 'none'
        });
      },
      complete: () => {
        wx.hideLoading();
      }
    });
  },

  /**
   * 加载活动数据
   */
  loadActivities: function() {
    wx.showLoading({ title: '加载活动中...' });
    // 调用活动API接口，连接到community_service_platform数据库的community_events表
    wx.request({
      url: 'http://192.168.1.3:3002/api/activities',
      timeout: 5000, // 5秒超时
      success: (res) => {
        if (res.data && res.data.success && res.data.data) {
          // 验证数据格式
          let activitiesData = res.data.data;
          
          // 确保activitiesData是数组
          if (!Array.isArray(activitiesData)) {
            console.error('活动数据格式错误，期望是数组但得到:', activitiesData);
            this.useDefaultActivities();
            return;
          }
          
          // 格式化活动数据，提取需要的字段
          const formattedActivities = activitiesData.map(event => ({
            id: event.id || event.event_id || '',
            title: event.title || '未命名活动',
            event_date: event.date || event.event_date || '日期未设置',
            start_time: event.start_time || '时间未设置',
            end_time: event.end_time || '时间未设置',
            location: event.location || '地点未设置',
            max_participants: event.max_participants || '未设置'
          }));
          
          if (formattedActivities.length > 0) {
            this.setData({
              activities: formattedActivities,
              currentActivityIndex: 0
            });
            this.startCarouselTimer();
            console.log('从服务器加载活动数据成功:', formattedActivities);
          } else {
            console.log('服务器返回空活动列表，使用默认数据');
            this.useDefaultActivities();
          }
        } else {
          console.error('服务器响应格式错误:', res.data);
          this.useDefaultActivities();
        }
      },
      fail: (err) => {
        console.error('活动加载失败:', err);
        this.useDefaultActivities();
      },
      complete: () => {
        wx.hideLoading();
      }
    });
  },

  /**
   * 使用默认活动数据
   */
  useDefaultActivities: function() {
    console.log('使用默认活动数据');
    // 使用data中的默认活动数据，确保有轮播图显示
    this.setData({
      currentActivityIndex: 0
    });
    this.startCarouselTimer();
  },
  
  /**
   * 启动轮播定时器
   */
  startCarouselTimer: function() {
    // 清除已有的定时器
    if (this.carouselTimer) {
      clearInterval(this.carouselTimer);
    }
    
    // 设置新的定时器，每5秒切换一次
    this.carouselTimer = setInterval(() => {
      const { activities, currentActivityIndex } = this.data;
      const nextIndex = (currentActivityIndex + 1) % activities.length;
      this.setData({
        currentActivityIndex: nextIndex
      });
    }, 5000);
  },
  
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {
    // 清除定时器
    if (this.carouselTimer) {
      clearInterval(this.carouselTimer);
    }
  },
  
  /**
   * 手动切换轮播图
   */
  onCarouselChange: function(e) {
    this.setData({
      currentActivityIndex: e.detail.current
    });
    // 重启定时器
    this.startCarouselTimer();
  },

  /**
   * 显示模块开发中提示
   */
  showUnderDevelopment: function() {
    wx.showToast({
      title: '该模块正在开发中，敬请期待',
      icon: 'none',
      duration: 2000
    });
  }
});